28e54aa60726e1538f7f73f1a01c23daecd18bab,platform/lang-impl/src/com/intellij/psi/search/PredefinedSearchScopeProviderImpl.java,PredefinedSearchScopeProviderImpl,getPredefinedScopes,#Project#DataContext#boolean#boolean#boolean#boolean#,70
Before Change
if (dataContextElement == null) {
final Editor selectedTextEditor = FileEditorManager.getInstance(project).getSelectedTextEditor();
if (selectedTextEditor != null) {
dataContextElement = PsiDocumentManager.getInstance(project).getPsiFile(selectedTextEditor.getDocument());
}
}
After Change
final Editor selectedTextEditor = ApplicationManager.getApplication().isDispatchThread()
? FileEditorManager.getInstance(project).getSelectedTextEditor()
: null;
final PsiFile psiFile =
(selectedTextEditor != null) ? PsiDocumentManager.getInstance(project).getPsiFile(selectedTextEditor.getDocument()) : null;
if (psiFile != null) {
result.add(new LocalSearchScope(psiFile, IdeBundle.message("scope.current.file")));
}
if (dataContext != null) {
PsiElement dataContextElement = CommonDataKeys.PSI_FILE.getData(dataContext);
if (dataContextElement == null) {
dataContextElement = CommonDataKeys.PSI_ELEMENT.getData(dataContext);
}
if (dataContextElement == null && psiFile != null) {
dataContextElement = psiFile;
}